
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<html>
    <head>
        <meta charset="utf-8">
        <script src="lib/esl.js"></script>
        <script src="lib/config.js"></script>
        <script src="lib/dat.gui.min.js"></script>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
    </head>
    <body>
        <style>
            html, body, #main {
                width: 100%;
                height: 600;
            }
        </style>
        <div style="position: relative; height: 600px;" id="main"></div>
        <div style="position: relative; height: 500px;" id="main1"></div>
        <div style="position: relative; height: 500px;" id="main2"></div>
        <script>
            require([
                'echarts'
                // 'echarts/chart/gauge',
                // 'echarts/component/legend',
                // 'echarts/component/tooltip'
            ], function (echarts) {
                var chart1 = echarts.init(document.getElementById('main1'), 'dark', {});
                var option1 = {
                    tooltip: {
                        formatter: '{a} <br/>{b} : {c}%'
                    },
                    toolbox: {
                        feature: {
                            restore: {},
                            saveAsImage: {}
                        }
                    },
                    series: [
                        {
                            name: '业务指标',
                            type: 'gauge',
                            progress: {
                                show: true
                            },
                            anchor:{
                                showAbove: true,
                                show: true
                            },
                            roundCap: true,
                            detail: {formatter: '{value}%'},
                            data: [{value: 58.46, name: '完成率'}]
                        }
                    ]
                };
                chart1.setOption(option1);
            })
        </script>
        <script>
            require([
                'echarts'
                // 'echarts/chart/gauge',
                // 'echarts/component/legend',
                // 'echarts/component/tooltip'
            ], function (echarts) {
                var chart2 = echarts.init(document.getElementById('main2'), 'dark', {});
                var option2 = {
                    tooltip: {
                        formatter: '{a} <br/>{b} : {c}%'
                    },
                    toolbox: {
                        feature: {
                            restore: {},
                            saveAsImage: {}
                        }
                    },
                    series: [
                        {
                            name: '业务指标',
                            type: 'gauge',
                            pointer: {
                                icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z'
                            },
                            roundCap: true,
                            progress: {
                                show: true,            // 坐标轴线
                                overlap: false,
                                color: ['#f00', '#0f0']
                            },
                            anchor: {
                                show: true,
                                showAbove: true
                            },
                            detail: {
                                formatter: '{value}%'
                            },
                            data: [
                                {
                                    value: 20,
                                    name: '完成率',
                                    title: {
                                        offsetCenter: ['-40%', '20%']
                                    },
                                    detail: {
                                        offsetCenter: ['-40%', '35%']
                                    }
                                },
                                {
                                    value: 40,
                                    name: '达标率',
                                    title: {
                                        offsetCenter: ['0%', '20%']
                                    },
                                    detail: {
                                        offsetCenter: ['0%', '35%']
                                    }
                                },
                                {
                                    value: 60,
                                    name: '优秀率',
                                    title: {
                                        offsetCenter: ['40%', '20%']
                                    },
                                    detail: {
                                        offsetCenter: ['40%', '35%']
                                    }
                                }
                            ],
                            title: {
                                fontSize: 14
                            },
                            detail: {
                                width: 30,
                                height: 12,
                                fontSize: 12,
                                color: 'auto',
                                borderColor: 'auto',
                                borderWidth: 1,
                                borderRadius: 3,
                                formatter: '{value}%',
                            }
                        }
                    ],
                };
                chart2.setOption(option2);
            })
        </script>
        <script>

            require([
                'echarts'
                // 'echarts/chart/gauge',
                // 'echarts/component/legend',
                // 'echarts/component/tooltip'
            ], function (echarts) {

                var chart = echarts.init(document.getElementById('main'), {

                });

                var option ={
                    aria: {
                        show: true
                    },
                    tooltip : {
                        formatter: '{a} <br/>{c} {b}'
                    },
                    toolbox: {
                        show : true,
                        feature : {
                            mark : {show: true},
                            restore : {show: true},
                            saveAsImage : {show: true}
                        }
                    },
                    series : [
                        {
                            name:'速度',
                            type:'gauge',
                            z: 3,
                            min:0,
                            max:220,
                            splitNumber:11,
                            axisLine: {            // 坐标轴线
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    width: 10
                                }
                            },
                            axisTick: {            // 坐标轴小标记
                                length :15,        // 属性length控制线长
                                distance: 10,
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    color: 'auto'
                                }
                            },
                            splitLine: {           // 分隔线
                                length :20,         // 属性length控制线长
                                distance: 10,
                                lineStyle: {       // 属性lineStyle（详见lineStyle）控制线条样式
                                    color: 'auto'
                                }
                            },
                            axisLabel: {
                                formatter: '{a|{value}} km/h',
                                rich: {
                                    a: {
                                        color: '#222',
                                        textBorderColor: '#fff',
                                        textBorderWidth: 2,
                                        backgroundColor: 'auto',
                                        padding: [2, 4],
                                        borderRadius: 3
                                    }
                                }
                            },
                            title : {
                                textStyle: { // Test compat
                                    fontWeight: 'bolder',
                                    fontSize: 26,
                                },
                                offsetCenter: [0, 0],
                                formatter: '{a|单位：}{value}',
                                backgroundColor: '#aabbcc',
                                padding: 10,
                                borderRadius: 5,
                                fontStyle: 'italic'
                            },
                            detail : {
                                fontSize: 24,
                                fontWeight: 'bold',
                                textStyle: { // Test compat
                                    backgroundColor: '#eeffee',
                                },
                                offsetCenter: [0, '70%'],
                                borderRadius: 10,
                                borderWidth: 2,
                                borderColor: '#33aa33',
                                shadowBlur: 2,
                                shadowColor: '#222',
                                shadowOffsetX: 5,
                                shadowOffsetY: 5,
                                width: 'auto',
                                rotate: 15,
                                textShadowBlur: 2,
                                textShadowColor: '#66eeaa',
                                textShadowOffsetX: 2,
                                textShadowOffsetY: 3,
                                formatter: [
                                    '{a|码表}',
                                    '{b|{value}}{c|km/h}',
                                    '{j|width is this line is 400}',
                                    '{d|left}{lineHeight|}{f|top}{g|bottom}middle{e|right}{e1|右边}'
                                ].join('\n'),
                                rich: {
                                    a: {
                                        fontSize: 34,
                                        color: 'auto',
                                    },
                                    b: {
                                        fontSize: 20,
                                        color: '#12294f',
                                        align: 'center',
                                        padding: [0, 5, 0, 0]
                                    },
                                    c: {
                                        fontSize: 14,
                                        color: '#aa99bb',
                                        rotate: 30,
                                        backgroundColor: '#223344',
                                        borderRadius: 3,
                                        padding: [2, 10]
                                    },
                                    d: {
                                        align: 'left'
                                    },
                                    e: {
                                        align: 'right'
                                    },
                                    e1: {
                                        color: '#33aa99',
                                        fontSize: 16,
                                        align: 'right'
                                    },
                                    f: {
                                        verticalAlign: 'top'
                                    },
                                    g: {
                                        verticalAlign: 'bottom'
                                    },
                                    h: {
                                        align: 'center'
                                    },
                                    i: {
                                        align: 'center'
                                    },
                                    j: {
                                        width: 400,
                                        backgroundColor: '#aabbcc',
                                        color: '#123'
                                    },
                                    lineHeight: {
                                        lineHeight: 46
                                    }
                                }
                            },
                            data:[{value: 40, name: 'km/h'}]
                        },
                        {
                            name:'转速',
                            type:'gauge',
                            center : ['25%', '55%'],    // 默认全局居中
                            radius : '50%',
                            min:0,
                            max:7,
                            endAngle:45,
                            splitNumber:7,
                            axisLine: {            // 坐标轴线
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    width: 8
                                }
                            },
                            axisTick: {            // 坐标轴小标记
                                length :12,        // 属性length控制线长
                                distance: 10,
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    color: 'auto'
                                }
                            },
                            splitLine: {           // 分隔线
                                length :20,         // 属性length控制线长
                                distance: 10,
                                lineStyle: {       // 属性lineStyle（详见lineStyle）控制线条样式
                                    color: 'auto'
                                }
                            },
                            pointer: {
                                width:5
                            },
                            title : {
                                // x, y，单位px
                                offsetCenter: [0, '-30%']
                            },
                            detail : {
                                textStyle: {       // 其余属性默认使用全局文本样式，详见TEXTSTYLE
                                    fontWeight: 'bolder',
                                    fontSize: 12
                                },
                            },
                            data:[{value: 1.5, name: 'x1000 r/min'}]
                        },
                        {
                            name:'油表',
                            type:'gauge',
                            center : ['75%', '50%'],    // 默认全局居中
                            radius : '50%',
                            min:0,
                            max:2,
                            startAngle:135,
                            endAngle:45,
                            splitNumber:2,
                            axisLine: {            // 坐标轴线
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    color: [[0.2, '#ff4500'],[0.8, '#48b'],[1, '#228b22']],
                                    width: 8
                                }
                            },
                            axisTick: {            // 坐标轴小标记
                                splitNumber:5,
                                length :10,        // 属性length控制线长
                                distance: 10,
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    color: 'auto'
                                }
                            },
                            axisLabel: {
                                formatter:function(v){
                                    switch (v + '') {
                                        case '0' : return 'E';
                                        case '1' : return 'Gas';
                                        case '2' : return 'F';
                                    }
                                }
                            },
                            splitLine: {           // 分隔线
                                length :15,         // 属性length控制线长
                                distance: 10,
                                lineStyle: {       // 属性lineStyle（详见lineStyle）控制线条样式
                                    color: 'auto'
                                }
                            },
                            pointer: {
                                width:2
                            },
                            title : {
                                show: false
                            },
                            detail : {
                                show: false
                            },
                            data:[{value: 0.5, name: 'gas'}]
                        },
                        {
                            name:'水表',
                            type:'gauge',
                            center : ['75%', '50%'],    // 默认全局居中
                            radius : '50%',
                            min:0,
                            max:2,
                            startAngle:315,
                            endAngle:225,
                            splitNumber:2,
                            axisLine: {            // 坐标轴线
                                lineStyle: {       // 属性lineStyle控制线条样式
                                    color: [[0.2, '#ff4500'],[0.8, '#48b'],[1, '#228b22']],
                                    width: 8
                                }
                            },
                            axisTick: {            // 坐标轴小标记
                                show: false
                            },
                            axisLabel: {
                                formatter:function(v){
                                    switch (v + '') {
                                        case '0' : return 'H';
                                        case '1' : return 'Water';
                                        case '2' : return 'C';
                                    }
                                }
                            },
                            splitLine: {           // 分隔线
                                length :15,         // 属性length控制线长
                                lineStyle: {       // 属性lineStyle（详见lineStyle）控制线条样式
                                    color: 'auto'
                                }
                            },
                            pointer: {
                                width: 2
                            },
                            title : {
                                show: false
                            },
                            detail : {
                                show: false
                            },
                            data:[{value: 0.5, name: 'gas'}]
                        }
                    ]
                };

                chart.setOption(option);

                setInterval(function () {
                    option.series[0].data[0].value = (Math.random()*100).toFixed(2) - 0;
                    option.series[1].data[0].value = (Math.random()*7).toFixed(2) - 0;
                    option.series[2].data[0].value = (Math.random()*2).toFixed(2) - 0;
                    option.series[3].data[0].value = (Math.random()*2).toFixed(2) - 0;
                    chart.setOption(option,true);
                }, 2000);
                // var config = {
                //     labelPosition: 'outside',
                //     clockwise: true,
                //     labelLineLen: 20,
                //     labelLineLen2: 5
                // };

                // function update() {
                //     chart.setOption({
                //         series: [{
                //             name: 'pie',
                //             clockwise: config.clockwise,
                //             label: {
                //                 normal: {
                //                     position: config.labelPosition
                //                 }
                //             },
                //             labelLine: {
                //                 length: config.labelLineLen,
                //                 length2: config.labelLineLen2
                //             }
                //         }]
                //     });
                // }

                // var gui = new dat.GUI();
                // gui.add(config, 'clockwise')
                //     .onChange(update);
                // gui.add(config, 'labelPosition', ['inside', 'outside'])
                //     .onChange(update);
                // gui.add(config, 'labelLineLen', 0, 100)
                //     .onChange(update);
                // gui.add(config, 'labelLineLen2', 0, 100)
                //     .onChange(update);
            })

        </script>
    </body>
</html>